﻿using GBT.Entity;
using GBT.Entity.GBT_Manage;
using GBT.Util;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace GBT.Business.GBT_Manage
{
    public interface IGBT_ServiceRequestBusiness
    {
        Task<PageResult<GBT_ServiceRequestDTO>> GetDataListAsync(PageInput<GBT_ServiceRequestConditionDTO> input);
        Task<GBT_ServiceRequest> GetTheDataAsync(string id);
        Task<List<GBT_ServiceRequestUserDTO>> GetServiceRequestUserListAsync(List<string> departmentId, string requestId, string userId);
        Task<List<GBT_ServiceDeliveryUserDTO>> GetServiceDeliveryUserListAsync(List<string> departmentId, string requestId, string userId);
        Task<PageResult<GBT_ServiceItemsDTO>> GetServiceItemsListAsync(PageInput<GBT_Base_ServiceItemConditionDTO> input);
        Task<List<GBT_ApprovalDTO>> GetApprovalListAsync(List<string> deptId, string requestId, int State);
        Task<List<GBT_ApprovalDTO>> GetApprovalHistoryAsync(string requestId);
        Task EvaluateAsync(GBT_ServiceRequestDTO data, string userId);
        Task AddDataAsync(GBT_ServiceRequestDTO data);
        Task UpdateDataAsync(GBT_ServiceRequestDTO data);
        Task SaveDataAsync(GBT_ServiceRequestDTO data, string userId);
        Task ApprovalAsync(GBT_ServiceRequestDTO data, string userId);
        Task DeleteDataAsync(List<string> ids);
    }

}